home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Variations / gen-variants-rndt < prev    next >
Lisp/Scheme  |  1996-12-31  |  990b  |  22 lines

  1. gen-variants-rndt seed number transpose-value symbol-pattern 
  2.  
  3. This is one of a series of functions that are able to generate a set of variations from a symbol pattern. The 'theme' symbol-pattern is stated first in the output followed sequentially by the number of variants equal to the length of the symbol-pattern.
  4.  
  5. (setq mel (gen-variants-rndt 0.34 nil nil '(a b c d)))
  6. --> (a b c d c e c e c c a b a a b b c e b b)
  7.  
  8. The transpose-value sets a top-limit to random control of transposition steps applied to each variant. Minus values are acceptable.
  9.  
  10. (setq mel1 (gen-variants-rndt 0.34 nil -5 '(a b c d)))
  11. --> (a b c d a c a c -b -b -d -c -d -d -c -c b d a a)
  12.  
  13. The two optional values in combination:
  14.  
  15. (setq mel2 (gen-variants-rndt 0.34 3 7 '(a b c d)))
  16. --> (a b c d i g h i i h i h c e e d)
  17.  
  18. Should you wish to remove the 'theme' from the output statement use the nthcdr function:
  19.  
  20. (setq mel3 (nthcdr 4 (gen-variants-rndt nil nil nil '(a b c d))))
  21. --> (c e b b c f f c d f f e f f d d) 
  22.